<?php

class PluginABC {
  /**
   * Texto que aparecerá en el boton del plugin
   * @var string
   */
  var $strNombreBoton   ;
  
  /**
   * Si el plugin es de dos pasos: Si es así se deben sobrecargar las funciones
   * de MostrarIngresoDatos (para SETUP del plugin) y EjecutarPlugin (Para 
   * ejecutar en si el plugin). Si es falso solo se sobrecarga la segunda funcion
   * 
   * @var boolean
   */
  var $bolLlevaDosPasos ;
  
  /**
   * Si este plugin es de tipo Local (Que se ejecuta por cada objeto), esta variable
   * contiene una copia del objeto al cual se está haciendo referencia. Si es un
   * plugin global se afectan a TODOS los objetos, por lo que no hay un objeto
   * por si solo al que afecte, y esta variable será false.
   * 
   * @var ObjetoBase
   */
  var $__oObjetoAplicado;
  
  /**
   * Funcion que muestra el contenido del plugin (Ya sea la configuracion del
   * mismo, o el resultado de la ejecución de este plugin)
   * 
   * @return string
   */
  function Mostrar() {
    if(!$this->bolLlevaDosPasos || (Variables::GetOption('paso') != '2')) {
      $strPagina = $this->EjecutarPlugin();
    } else {
      $strPagina = $this->MostrarIngresoDatos();
    }
    
    return $strPagina;
  }
  
  /**
   * Funcion que ejecuta el plugin.
   * 
   * **** SE NECESITA SOBRECARGAR SIEMPRE ***
   */
  function EjecutarPlugin() {
    echo "<h1>Se necesita sobrecargar la funcion " . __FUNCTION__ . " de la clase " . __CLASS__ . "</h1>";
  }
  
  /**
   * Funcion que muestra la configuracion del plugin
   * 
   * **** SE NECESITA SOBRECARGAR CUANDO $bolLlevaDosPasos == true ****
   */
  function MostrarIngresoDatos() {
    echo "<h1>Se necesita sobrecargar la funcion " . __FUNCTION__ . " de la clase " . __CLASS__ . "</h1>";
  }
}

?>
